在前幾天的學習中,我們已經分別嘗試過 基本面數據的解析(例如財報、新聞)、 技術指標的解讀(如 RSI、MA),並且讓 AI 來幫我們轉換成白話。今天,我們要做的是 真正的整合 —— 讓這些元素不再是分散的單點,而是能夠在一個流程裡,彼此呼應、補強不足。
使用 NWSAPI 抓取 Yahoo Finance 或 Google News 的即時新聞。
整理標題與摘要後,送進 Gemini API,請 AI 幫忙解讀新聞可能對股價的影響。
透過 yfinance 取得股價歷史資料。
計算常見指標(RSI、MA)。
輸出一份簡單的技術面觀察,例如「RSI 偏高,短線過熱」、「MA 呈現黃金交叉」。
將 基本面解讀 + 技術面觀察 一起丟給 Gemini,請它幫我們做出「整合性分析」。
AI 會產生一份「類似投資建議」的文字,像是「短期可能震盪,但中期基本面支撐仍佳」。
python
# 安裝必要套件
!pip install -q yfinance pandas ta requests google-generativeai
import requests
import pandas as pd
import yfinance as yf
import ta
import google.generativeai as genai
# === 設定 Gemini API ===
genai.configure(api_key="YOUR_GEMINI_API_KEY") # 改成你的 API Key
model = genai.GenerativeModel("gemini-1.5-flash")
# === Step 1: 取得即時新聞 (NewsAPI) ===
NEWS_API_KEY = "YOUR_NEWSAPI_KEY" # 改成你的 NewsAPI Key
symbol = "AAPL" # 股票代碼
url = f"https://newsapi.org/v2/everything?q={symbol}&apiKey={NEWS_API_KEY}"
response = requests.get(url).json()
articles = response.get("articles", [])[:3] # 取前三則新聞
news_summary = "\n".join([f"- {a['title']} ({a['source']['name']})" for a in articles])
# === Step 2: 技術指標分析 ===
data = yf.download(symbol, period="3mo", interval="1d", auto_adjust=True)
# 確保 Close 是 1D Series
close_prices = data["Close"].squeeze()
# RSI (14日)
rsi_indicator = ta.momentum.RSIIndicator(close=close_prices, window=14)
data["RSI"] = rsi_indicator.rsi()
# 20日移動平均線
data["MA20"] = data["Close"].rolling(20).mean()
# 取最後一天指標並轉 float
latest_close = float(data["Close"].iloc[-1])
latest_rsi = float(data["RSI"].dropna().iloc[-1])
latest_ma = float(data["MA20"].dropna().iloc[-1])
tech_summary = f"""
最新收盤價:{latest_close:.2f}
RSI:{latest_rsi:.2f} ({'過熱' if latest_rsi>70 else '偏低' if latest_rsi<30 else '中性'})
MA20:{latest_ma:.2f} ({'股價在均線之上' if latest_close>latest_ma else '股價在均線之下'})
"""
# === Step 3: AI 綜合解讀 ===
prompt = f"""
以下是關於 {symbol} 的最新市場資訊:
新聞摘要:
{news_summary}
技術分析:
{tech_summary}
請綜合以上資訊,給我一份整體投資解讀(白話、200字內)。
"""
analysis = model.generate_content(prompt)
# === 輸出區塊 ===
print("=== 最新新聞摘要 ===")
print(news_summary if news_summary else "(無最新新聞)")
print("\n=== 技術指標分析 ===")
print(tech_summary)
print("\n=== AI 綜合解讀 ===")
print(analysis.text)
可以看到清楚呈現了三段輸出:最新新聞摘要、技術指標分析、AI 綜合解讀
學會 新聞(基本面)+ 技術指標(技術面)+ AI 解讀 的完整流程。
這樣的組合,可以讓我們不只是單看數據,而是把 資訊串起來,更接近真實投資決策的思考方式。
投資世界裡,沒有單一的面向能解釋一切。新聞能帶來情緒與趨勢,技術指標能揭示市場狀態,而 AI 則幫助我們消化龐大的資訊量,化繁為簡。透過今天的整合,我們已經踏出打造「AI 輔助投資系統」的關鍵一步。
👉 明天(Day 14),我們將把今天的成果進一步整理成一份自動化 AI 報告,在終端機中一鍵生成專屬的投資分析! 🚀